package org.jjche.common.transformer;

import org.jjche.common.annotation.transform.TransformEnum;
import org.springframework.lang.NonNull;


/**
 * 枚举转换器接口
 * 注意需要自行实现接口后（名字必须是EnumTransformer）并注入spring容器才能正常使用
 *
 * @author R
 */
public interface IEnumTransformer<T> extends ITransformer<T, TransformEnum> {
    /**
     * 转换
     *
     * @param originalValue 转换之前的原始值
     * @param transformEnum 注解
     * @return 转换后的值
     */
    @Override
    default String transform(@NonNull T originalValue, TransformEnum transformEnum) {
        return transform(originalValue);
    }

    /**
     * 转换
     *
     * @param originalValue 原始值
     * @return 转换后的值
     */
    String transform(@NonNull T originalValue);
}
